﻿// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Permissive License.
// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
// All other rights reserved.

using System;
using System.ComponentModel;
using Microsoft.Windows.Design;
using Microsoft.Windows.Design.Interaction;
using Microsoft.Windows.Design.Features;
using Microsoft.Windows.Design.Metadata;
using Microsoft.Windows.Design.Model;
using Microsoft.Windows.Design.PropertyEditing;

[assembly: ProvideMetadata(typeof(Expression.Samples.Shaders.Design.MetadataStore))]

namespace Expression.Samples.Shaders.Design {

	public class MetadataStore : IProvideAttributeTable {
		#region IProvideAttributeTable Members

		public AttributeTable AttributeTable {
			get {
				AttributeTableBuilder attributeTableBuilder = new AttributeTableBuilder();

				//Bloom Effect
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BaseIntensity", new CategoryAttribute("Bloom Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BaseIntensity", new NumberRangesAttribute(
					null, -3, 2, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BaseIntensity", new NumberIncrementsAttribute(
					.01, .1, 1));

				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BaseSaturation", new CategoryAttribute("Bloom Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BaseSaturation", new NumberRangesAttribute(
					null, -4, 10, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BaseSaturation", new NumberIncrementsAttribute(
					.01, .1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BloomIntensity", new CategoryAttribute("Bloom Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BloomIntensity", new NumberRangesAttribute(
					null, -1, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BloomIntensity", new NumberIncrementsAttribute(
					.01, .1, 1));

				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BloomSaturation", new CategoryAttribute("Bloom Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BloomSaturation", new NumberRangesAttribute(
					null, -1, 5, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(BloomEffect), "BloomSaturation", new NumberIncrementsAttribute(
					.01, .1, 1));

				//Banded Swirl Effect
				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "Center", new CategoryAttribute("Banded Swirl Effect"));

				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "DistanceThreshold", new CategoryAttribute("Banded Swirl Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "DistanceThreshold", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "DistanceThreshold", new NumberIncrementsAttribute(
					.01, .1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "SwirlStrength", new CategoryAttribute("Banded Swirl Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "SwirlStrength", new NumberRangesAttribute(
					null, -2, 2, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "SwirlStrength", new NumberIncrementsAttribute(
					.01, .1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(BandedSwirlEffect), "Input", new BrowsableAttribute(false));

				//Bright Extract
				attributeTableBuilder.AddCustomAttributes(typeof(BrightExtractEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(BrightExtractEffect), "Threshold", new CategoryAttribute("Bright Extract Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(BrightExtractEffect), "Threshold", new NumberRangesAttribute(
					null, -5.0, .99, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(BrightExtractEffect), "Threshold", new NumberIncrementsAttribute(
					.01, .1, 1));

				//ColorToneEffect
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "DarkColor", new CategoryAttribute("Color Tone Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "LightColor", new CategoryAttribute("Color Tone Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "Desaturation", new CategoryAttribute("Color Tone Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "Desaturation", new NumberRangesAttribute(
					null, -2.0, 4.0, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "Desaturation", new NumberIncrementsAttribute(
					.01, .1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "Toned", new CategoryAttribute("Color Tone Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "Toned", new NumberRangesAttribute(
					null, -2.0, 4.0, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ColorToneEffect), "Toned", new NumberIncrementsAttribute(
					.01, .1, 1));

				//ContrastAdjustEffect
				attributeTableBuilder.AddCustomAttributes(typeof(ContrastAdjustEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(ContrastAdjustEffect), "Brightness", new CategoryAttribute("Contrast Adjust Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ContrastAdjustEffect), "Brightness", new NumberRangesAttribute(
					null, -1, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ContrastAdjustEffect), "Brightness", new NumberIncrementsAttribute(
					.01, .1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(ContrastAdjustEffect), "Contrast", new CategoryAttribute("Contrast Adjust Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ContrastAdjustEffect), "Contrast", new NumberRangesAttribute(
					null, 0, 2, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ContrastAdjustEffect), "Contrast", new NumberIncrementsAttribute(
					.01, .1, 1));

				//DirectionalBlurEffect
				attributeTableBuilder.AddCustomAttributes(typeof(DirectionalBlurEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(DirectionalBlurEffect), "Angle", new CategoryAttribute("Directional Blur Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(DirectionalBlurEffect), "Angle", new NumberRangesAttribute(
					null, 0, 360, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(DirectionalBlurEffect), "BlurAmount", new CategoryAttribute("Directional Blur Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(DirectionalBlurEffect), "BlurAmount", new NumberRangesAttribute(
					null, 0.0, 5.0, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(DirectionalBlurEffect), "BlurAmount", new NumberIncrementsAttribute(
				.001, .01, 0.1));
				attributeTableBuilder.AddCustomAttributes(typeof(DirectionalBlurEffect), "Contrast", new CategoryAttribute("DirectionalBlurEffect"));
				attributeTableBuilder.AddCustomAttributes(typeof(DirectionalBlurEffect), "Contrast", new NumberIncrementsAttribute(
					.001, .01, .1));

				//EmbossedEffect
				attributeTableBuilder.AddCustomAttributes(typeof(EmbossedEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(EmbossedEffect), "Amount", new CategoryAttribute("Embossed Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(EmbossedEffect), "Amount", new NumberRangesAttribute(
					null, -15, 15, null, null));

				attributeTableBuilder.AddCustomAttributes(typeof(EmbossedEffect), "Width", new CategoryAttribute("Embossed Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(EmbossedEffect), "Width", new NumberRangesAttribute(
					null, 0.0, 0.0003, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(EmbossedEffect), "Width", new NumberIncrementsAttribute(
					0.000001, 0.00001, 0.0001));

				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "BaseIntensity", new CategoryAttribute("Gloom Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "BaseIntensity", new NumberRangesAttribute(
					null, -3, 2, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "BaseSaturation", new CategoryAttribute("Gloom Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "BaseSaturation", new NumberRangesAttribute(
					null, 0, 10, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "GloomIntensity", new CategoryAttribute("Gloom Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "GloomIntensity", new NumberRangesAttribute(
					null, -1, 5, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "GloomSaturation", new CategoryAttribute("Gloom Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(GloomEffect), "GloomSaturation", new NumberRangesAttribute(
					null, -1, 5, null, null));

				//LightStreakEffect
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "Attenuation", new CategoryAttribute("Light Streak Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "Attenuation", new NumberRangesAttribute(
				null, -2, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "Attenuation", new NumberIncrementsAttribute(
					0.01, 0.1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "BrightThreshold", new CategoryAttribute("Light Streak Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "BrightThreshold", new NumberRangesAttribute(
					null, -2, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "BrightThreshold", new NumberIncrementsAttribute(
					0.01, 0.1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "Scale", new CategoryAttribute("Light Streak Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "Scale", new NumberRangesAttribute(
					null, 0, 3, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(LightStreakEffect), "Scale", new NumberIncrementsAttribute(
					0.001, 0.01, .1));

				//MagnifyEffect
				attributeTableBuilder.AddCustomAttributes(typeof(MagnifyEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(MagnifyEffect), "Center", new CategoryAttribute("Magnify Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(MagnifyEffect), "Center", new NumberIncrementsAttribute(
				0.01, 0.1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(MagnifyEffect), "Radii", new CategoryAttribute("Magnify Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(MagnifyEffect), "ShrinkFactor", new CategoryAttribute("Magnify Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(MagnifyEffect), "ShrinkFactor", new NumberRangesAttribute(
					null, -5, 5, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(MagnifyEffect), "ShrinkFactor", new NumberIncrementsAttribute(
					0.01, 0.1, 1));

				//PinchEffect
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "Radius", new CategoryAttribute("Pinch Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "Radius", new NumberRangesAttribute(
					null, 0, 2, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "Radius", new NumberIncrementsAttribute(
					0.001, 0.01, 0.1));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "Amount", new CategoryAttribute("Pinch Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "Amount", new NumberRangesAttribute(
					null, -5, 5, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "Amount", new NumberIncrementsAttribute(
					0.01, 0.1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "CenterX", new CategoryAttribute("Pinch Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "CenterX", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "CenterX", new NumberIncrementsAttribute(
					0.001, 0.01, .1));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "CenterY", new CategoryAttribute("Pinch Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "CenterY", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(PinchEffect), "CenterY", new NumberIncrementsAttribute(
					0.001, 0.01, .1));

				//RippleEffect
				attributeTableBuilder.AddCustomAttributes(typeof(RippleEffect), "Center", new CategoryAttribute("Ripple Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(RippleEffect), "Frequency", new CategoryAttribute("Ripple Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(RippleEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(RippleEffect), "Amplitude", new CategoryAttribute("Ripple Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(RippleEffect), "Amplitude", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(RippleEffect), "Amplitude", new NumberIncrementsAttribute(
					0.001, 0.01, .1));
				attributeTableBuilder.AddCustomAttributes(typeof(RippleEffect), "Phase", new CategoryAttribute("Ripple Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(RippleEffect), "Phase", new NumberIncrementsAttribute(
					0.01, 0.1, 1));

				attributeTableBuilder.AddCustomAttributes(typeof(SharpenEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(SharpenEffect), "Amount", new CategoryAttribute("Sharpen Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SharpenEffect), "Amount", new NumberRangesAttribute(
					null, 0, 100, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(SharpenEffect), "Width", new CategoryAttribute("Sharpen Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SharpenEffect), "Width", new NumberRangesAttribute(
					null, 0, 0.0005, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(SharpenEffect), "Width", new NumberIncrementsAttribute(
					0.000001, 0.00001, 0.0001));

				//SmoothMagnifyEffect
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "Center", new CategoryAttribute("Smooth Magnify Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "InnerRadius", new CategoryAttribute("Smooth Magnify Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "InnerRadius", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "InnerRadius", new NumberIncrementsAttribute(
					0.001, 0.01, .1));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "Magnification", new CategoryAttribute("Smooth Magnify Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "Magnification", new NumberRangesAttribute(
					null, -5, 5, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "Magnification", new NumberIncrementsAttribute(
					0.01, 0.1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "OuterRadius", new CategoryAttribute("Smooth Magnify Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "OuterRadius", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(SmoothMagnifyEffect), "OuterRadius", new NumberIncrementsAttribute(
					0.001, 0.01, .1));

				//SwirlEffect
				attributeTableBuilder.AddCustomAttributes(typeof(SwirlEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(SwirlEffect), "AngleFrequency", new CategoryAttribute("Swirl Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SwirlEffect), "Center", new CategoryAttribute("Swirl Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SwirlEffect), "SwirlStrength", new CategoryAttribute("Swirl Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(SwirlEffect), "SwirlStrength", new NumberRangesAttribute(
					null, 0, 10, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(SwirlEffect), "SwirlStrength", new NumberIncrementsAttribute(
					0.01, 0.1, 1));

				//ToneMappingEffect
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "FogColor", new CategoryAttribute("Tone Mapping Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "VignetteCenter", new CategoryAttribute("Tone Mapping Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "BlueShift", new CategoryAttribute("Tone Mapping Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "BlueShift", new NumberRangesAttribute(
					null, -5, 5, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "BlueShift", new NumberIncrementsAttribute(
					0.01, 0.1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Defog", new CategoryAttribute("Tone Mapping Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Defog", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Defog", new NumberIncrementsAttribute(
					0.001, 0.01, .1));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Exposure", new CategoryAttribute("Tone Mapping Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Exposure", new NumberRangesAttribute(
					null, -5, 5, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Exposure", new NumberIncrementsAttribute(
					0.01, 0.1, 1));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Gamma", new CategoryAttribute("Tone Mapping Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Gamma", new NumberRangesAttribute(
					null, 0, 3, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Exposure", new CategoryAttribute("Tone Mapping Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "Exposure", new NumberIncrementsAttribute(
					0.001, 0.01, .1));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "VignetteRadius", new CategoryAttribute("Tone Mapping Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "VignetteRadius", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ToneMappingEffect), "VignetteRadius", new NumberIncrementsAttribute(
					0.001, 0.01, .1));

				attributeTableBuilder.AddCustomAttributes(typeof(ZoomBlurEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(ZoomBlurEffect), "Center", new CategoryAttribute("Zoom Blur Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ZoomBlurEffect), "BlurAmount", new CategoryAttribute("Zoom Blur Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(ZoomBlurEffect), "BlurAmount", new NumberRangesAttribute(
					null, 0, 1, null, null));
				attributeTableBuilder.AddCustomAttributes(typeof(ZoomBlurEffect), "BlurAmount", new NumberIncrementsAttribute(
					0.001, 0.01, .1));

				//ColorKeyAlphaEffect
				attributeTableBuilder.AddCustomAttributes(typeof(ColorKeyAlphaEffect), "Input", new BrowsableAttribute(false));

				//GrowablePoissonDiskEffect
				attributeTableBuilder.AddCustomAttributes(typeof(GrowablePoissonDiskEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(GrowablePoissonDiskEffect), "Radius", new CategoryAttribute("Growable Poisson Disk Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(GrowablePoissonDiskEffect), "Width", new CategoryAttribute("Growable Poisson Disk Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(GrowablePoissonDiskEffect), "Height", new CategoryAttribute("Growable Poisson Disk Effect"));

				//InvertColorEffect
				attributeTableBuilder.AddCustomAttributes(typeof(InvertColorEffect), "Input", new BrowsableAttribute(false));


				//ToonShaderEffect
				attributeTableBuilder.AddCustomAttributes(typeof(ToonShaderEffect), "Input", new BrowsableAttribute(false));

				//PixelateEffect
				attributeTableBuilder.AddCustomAttributes(typeof(PixelateEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(PixelateEffect), "HorizontalPixelCounts", new CategoryAttribute("Monochrome Effect"));
				attributeTableBuilder.AddCustomAttributes(typeof(PixelateEffect), "VerticalPixelCounts", new CategoryAttribute("Monochrome Effect"));


				//MonochromeEffect
				attributeTableBuilder.AddCustomAttributes(typeof(MonochromeEffect), "Input", new BrowsableAttribute(false));
				attributeTableBuilder.AddCustomAttributes(typeof(MonochromeEffect), "FilterColor", new CategoryAttribute("Monochrome Effect"));

				return attributeTableBuilder.CreateTable();


			}
		}
		#endregion
	}
}